/**
 * 对于样例，只迭代了4次。定义域范围较小。
 * 对七次方以下是准确的，可能
 */
#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;

using Real = long double;

struct Romberg {

using Real = long double;

function<Real(Real)> f;

Romberg(function<Real(Real)> g):f(g){}

/// 在精度eps下计算 \int_{a}^{b}{f(x)dx}
Real solve(Real a, Real b, Real eps) {
    Real h = b - a, h2;
    int m = 1;
    Real T0 = 0.5 * h * (f(a) + f(b)), Ti;
    Real S0 = 0, Si;
    Real C0 = 0, Ci;
    Real R0 = 0, Ri;
    Real x;
    /// 最多计算20多次
    for(int i=1;i<=20;++i){
        h2 = h;
        h *= 0.5;
        m <<= 1;

        /// 计算Ti
        Ti = 0;
        x = a + h;
        for(int j=1;j<m;j+=2){
            Ti += f(x);
            x += h2;
        }
        Ti = 0.5 * T0 + h * Ti;

        /// 计算Si
        Si = (4.0 * Ti - T0) / 3.0;
        /// 计算Ci
        Ci = (16.0 * Si - S0) / 15.0;
        /// 计算Ri
        Ri = (64.0 * Ci - C0) / 63.0;
        // cout << i << ": " << Ti << ", " << Si << ", " << Ci << ", " << Ri << endl;
        /// 判断
        if(fabs(Ri - R0) <= eps) return Ri;

        T0 = Ti, C0 = Ci, S0 = Si, R0 = Ri;
    }
    throw runtime_error("cant");
    return 0;
}

};

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0);   
    Real a,b,c,d,L,R;
    cin >> a >> b >> c >> d >> L >> R;
    cout << fixed << setprecision(6) << Romberg([&](Real x)->Real{return (c*x+d)/(a*x+b);}).solve(L, R, 1E-10L) << endl; 
    return 0;
}